Øyvind Kolås [Fri, 9 Dec 2016 19:07:47 +0000 (20:07 +0100)]
extensions/simple: implement some 32bit integer fast paths
Øyvind Kolås [Fri, 9 Dec 2016 13:26:31 +0000 (14:26 +0100)]
extensions: speed up 8bit gray scale for GIMP
Øyvind Kolås [Thu, 8 Dec 2016 19:03:27 +0000 (20:03 +0100)]
extensions/16bit: add a couple 16 bit alpha adding fast paths
Edward E [Fri, 2 Dec 2016 00:39:11 +0000 (18:39 -0600)]
babl-cache: implement a better cache path on Win32
Use SHGetFolderPathA() to get the user local data path
(the same path GEGL uses for plugins on Win32)
https://bugzilla.gnome.org/show_bug.cgi?id=774491
Øyvind Kolås [Wed, 30 Nov 2016 00:43:45 +0000 (01:43 +0100)]
babl-cache: fix mk_ancestry to return 0 when behaving properly
Øyvind Kolås [Tue, 29 Nov 2016 21:53:13 +0000 (22:53 +0100)]
babl-cache: use babl version in header for releases
Øyvind Kolås [Tue, 29 Nov 2016 21:45:56 +0000 (22:45 +0100)]
babl-cache: factor out construction of header line
Øyvind Kolås [Tue, 29 Nov 2016 21:16:17 +0000 (22:16 +0100)]
post release version bump
Øyvind Kolås [Tue, 29 Nov 2016 21:04:31 +0000 (22:04 +0100)]
configure.ac: 0.1.22 release
Øyvind Kolås [Mon, 28 Nov 2016 11:14:45 +0000 (12:14 +0100)]
rename define for default BABL_TOLERANCE to match envvar
Jehan [Thu, 24 Nov 2016 03:31:49 +0000 (04:31 +0100)]
babl-cache: just some styling fix.
Saw some light, and some trailing whitespaces, or some indentation
not following the usual styling, and I fixed it.
Edward E [Wed, 23 Nov 2016 22:33:29 +0000 (16:33 -0600)]
babl, babl-cache: enable cache write, fix cache path processing
1. babl.c/babl_exit(): Remove fixme to enable babl cache writing on windows.
2. babl-cache.c/mk_ancestry(): pass the modified path to mk_ancestry_iter().
Edward E [Wed, 23 Nov 2016 20:35:39 +0000 (14:35 -0600)]
babl-verify: fix win32 compile, with s/setenv/putenv/g
Wouldn't compile on windows because putenv() takes 1 arg, not 2.
Win32 has no setenv(), pippin said try using putenv() on all platforms.
Øyvind Kolås [Wed, 23 Nov 2016 19:45:43 +0000 (20:45 +0100)]
babl-cache: use clearer arithmetic for dropping 1% of cached fishes
Øyvind Kolås [Wed, 23 Nov 2016 10:36:28 +0000 (11:36 +0100)]
babl-cache: incorporate BABL_PATH_LENGTH in header
Øyvind Kolås [Wed, 23 Nov 2016 10:28:24 +0000 (11:28 +0100)]
babl-cache: rearrange per fish data
Øyvind Kolås [Tue, 22 Nov 2016 21:53:36 +0000 (22:53 +0100)]
babl-cache: remove win32 bail at start of loading code
Edward E [Tue, 22 Nov 2016 19:50:34 +0000 (20:50 +0100)]
babl-cache: Add a #define for FALLBACK_CACHE_PATH
Also return fallback cache path if failing to create location for constructed
path.
Øyvind Kolås [Tue, 22 Nov 2016 19:44:37 +0000 (20:44 +0100)]
mk_ancestry: propagate return value
Øyvind Kolås [Mon, 21 Nov 2016 12:44:51 +0000 (13:44 +0100)]
babl-verify: make it compile on win32, by making setenv use putenv
Øyvind Kolås [Mon, 21 Nov 2016 12:42:55 +0000 (13:42 +0100)]
babl-cache: expect newline trouble on win32
Øyvind Kolås [Sun, 20 Nov 2016 21:39:05 +0000 (22:39 +0100)]
fish_cache_path(): simplify through use stack instead of heap
Øyvind Kolås [Sun, 20 Nov 2016 17:17:52 +0000 (18:17 +0100)]
babl-cache: use getenv("TEMP") for folder location on win32, and fix mk_ancestry
Inspired by initial work in patch for bug 774491 provided by Edward E
Øyvind Kolås [Sun, 20 Nov 2016 13:36:46 +0000 (14:36 +0100)]
fast-float: tweak precision so that float->8bit tests pass without issue
Øyvind Kolås [Sun, 20 Nov 2016 12:28:43 +0000 (13:28 +0100)]
babl-cache: avoid %'ing by 0
Øyvind Kolås [Sun, 20 Nov 2016 11:36:36 +0000 (12:36 +0100)]
babl-verify: set a high tolerance, avoid censoring some underperforming fast paths
Øyvind Kolås [Sat, 19 Nov 2016 19:08:28 +0000 (20:08 +0100)]
two-table: add RGBA float to R'G'B'A u8
Øyvind Kolås [Sat, 19 Nov 2016 19:08:16 +0000 (20:08 +0100)]
fast-float: add RGBA float to R'G'B'A u8
Øyvind Kolås [Sat, 19 Nov 2016 17:27:06 +0000 (18:27 +0100)]
make pow implementations inlineable - gaining some fixed amount of blitting performance
Øyvind Kolås [Sat, 19 Nov 2016 18:38:14 +0000 (19:38 +0100)]
fast-float: fix regression introduced when reindenting
Øyvind Kolås [Sat, 19 Nov 2016 18:22:10 +0000 (19:22 +0100)]
remove babl-fish-stats
Øyvind Kolås [Sat, 19 Nov 2016 17:50:27 +0000 (18:50 +0100)]
gegl-fixups: indentation
Øyvind Kolås [Sat, 19 Nov 2016 17:50:11 +0000 (18:50 +0100)]
fast-float: indentation
Øyvind Kolås [Sat, 19 Nov 2016 17:14:11 +0000 (18:14 +0100)]
remove bablfishpath
Øyvind Kolås [Sat, 19 Nov 2016 14:29:48 +0000 (15:29 +0100)]
cairo: reorder memory reads to be linear
Øyvind Kolås [Sat, 19 Nov 2016 14:21:20 +0000 (15:21 +0100)]
fast-float: improve memory access order
Øyvind Kolås [Sat, 19 Nov 2016 14:01:14 +0000 (15:01 +0100)]
remove babl_process_cost
Øyvind Kolås [Sat, 19 Nov 2016 12:29:36 +0000 (13:29 +0100)]
extension/fast-float: gain some speed by ignoring a couple high mantissa bits
Øyvind Kolås [Sat, 19 Nov 2016 12:28:35 +0000 (13:28 +0100)]
extensions/cairo: remove ; now unused; LUT
Øyvind Kolås [Sat, 19 Nov 2016 11:07:40 +0000 (12:07 +0100)]
fast-float: make float to cairo conversion take clipping into account
Øyvind Kolås [Wed, 16 Nov 2016 19:34:05 +0000 (20:34 +0100)]
babl-fish-path: add some specific conversion targeted debug info
Øyvind Kolås [Wed, 16 Nov 2016 19:40:58 +0000 (20:40 +0100)]
tools: add babl-verify start of an development aid when improving fast paths
This tool take the names of source/target formats - and prints error/cost for
all direct conversions matching arguments.
Øyvind Kolås [Fri, 18 Nov 2016 22:38:12 +0000 (23:38 +0100)]
fast-float: implement linear interpolation in LUT
Øyvind Kolås [Thu, 17 Nov 2016 12:09:54 +0000 (13:09 +0100)]
extensions/gggl-lies: bump up accuracy of a conversion
Øyvind Kolås [Wed, 16 Nov 2016 21:39:17 +0000 (22:39 +0100)]
fast-float: use higher accuracy LUTs and rework some alpha handling
Øyvind Kolås [Wed, 16 Nov 2016 22:52:26 +0000 (23:52 +0100)]
cairo: pad with 255 instead of copy of color for 24bit format
Øyvind Kolås [Wed, 16 Nov 2016 22:19:46 +0000 (23:19 +0100)]
cairo: slight improvements to speed and accuracy
Øyvind Kolås [Wed, 16 Nov 2016 22:11:15 +0000 (23:11 +0100)]
extensions/cairo: remove some arithmetic
Øyvind Kolås [Wed, 16 Nov 2016 19:36:57 +0000 (20:36 +0100)]
change default BABL_TOLERANCE to 0.000006
This makes the cairo.so extensions fast path for RGBA float blitting to be
accepted. This makes conversions with internal quantization of roughly 16bit be
accepted.
Øyvind Kolås [Wed, 16 Nov 2016 18:27:28 +0000 (19:27 +0100)]
extensions/cairo: replace hard-coded LUT with runtime LUT
The LUT needed recomputation anyways, doing it at runtime permits easier
tweaking. This results in better precision for the fast path than the
existing table.
Øyvind Kolås [Wed, 16 Nov 2016 16:42:33 +0000 (17:42 +0100)]
add single precision versions of linear/gamma conversions
Øyvind Kolås [Wed, 16 Nov 2016 16:12:50 +0000 (17:12 +0100)]
fast-float: tweak lut generation
Øyvind Kolås [Tue, 15 Nov 2016 22:51:44 +0000 (23:51 +0100)]
babl-cache: attempt to make things barely compile on win32
Øyvind Kolås [Tue, 15 Nov 2016 16:02:10 +0000 (17:02 +0100)]
store cached fishes in ~/.cache/babl
Still no fish cache path solution for win32
Øyvind Kolås [Tue, 15 Nov 2016 14:50:52 +0000 (15:50 +0100)]
babl-cache: remove unneeded switch
Øyvind Kolås [Tue, 15 Nov 2016 14:47:58 +0000 (15:47 +0100)]
reduce default max babl path to 3
Big decrease in combinatorial explosion of search - missing out on some big
fish.
Øyvind Kolås [Tue, 15 Nov 2016 13:50:01 +0000 (14:50 +0100)]
babl-cache: add a 1% probability of cached conversions being dropped on load
Øyvind Kolås [Tue, 15 Nov 2016 13:22:48 +0000 (14:22 +0100)]
babl-cache: store tolerance as part of cache versioning
Øyvind Kolås [Tue, 15 Nov 2016 12:05:28 +0000 (13:05 +0100)]
move fish cache to own .c file
Simon Budig [Tue, 15 Nov 2016 01:34:27 +0000 (02:34 +0100)]
extensions: align rounding of R'G'B'A u8 -> cairo-ARGB32 with reference conversion
SBP [Fri, 11 Nov 2016 23:14:38 +0000 (17:14 -0600)]
Add extension with HCY color model, and pixel formats
Øyvind Kolås [Mon, 14 Nov 2016 23:33:41 +0000 (00:33 +0100)]
babl.db: do not use strtod - it is locale dependent
Øyvind Kolås [Mon, 14 Nov 2016 21:09:00 +0000 (22:09 +0100)]
remove deprecated loss struct member
Øyvind Kolås [Mon, 14 Nov 2016 19:47:39 +0000 (20:47 +0100)]
babl.db: if git hash has changed, drop cache
Øyvind Kolås [Mon, 14 Nov 2016 19:42:16 +0000 (20:42 +0100)]
babl.db: store git rev/version in header
Øyvind Kolås [Mon, 14 Nov 2016 17:01:55 +0000 (18:01 +0100)]
build: add generation of git-version.h
Øyvind Kolås [Mon, 14 Nov 2016 17:39:16 +0000 (18:39 +0100)]
fish cache: sort cached fish paths by descending usage
Øyvind Kolås [Mon, 14 Nov 2016 16:18:36 +0000 (17:18 +0100)]
babl-fish-path: do not allow parallell construction
Øyvind Kolås [Mon, 14 Nov 2016 13:28:31 +0000 (14:28 +0100)]
babl_init_db: formats being with first char of line
Øyvind Kolås [Mon, 14 Nov 2016 01:30:03 +0000 (02:30 +0100)]
bail on db-cache restoration if format lookup fails
Øyvind Kolås [Sun, 13 Nov 2016 23:45:15 +0000 (00:45 +0100)]
babl: cache state between babl runs
Store the contents of discovered babl_paths between runs, for now in
/tmp/babl.db , should move to a per-user dir to make it survive reboots.
The code should also check a versioning string at the start and bail if there
is any mismatch... since the data should be reconstructable; and more reliable
when reconstructed than a possibly old version.
Alexandre Prokoudine [Sat, 5 Nov 2016 17:22:41 +0000 (20:22 +0300)]
Post-release version bump to 0.1.21
Alexandre Prokoudine [Sat, 5 Nov 2016 17:14:55 +0000 (20:14 +0300)]
Release 0.1.20
Alexandre Prokoudine [Sat, 5 Nov 2016 17:12:12 +0000 (20:12 +0300)]
Update NEWS for 0.1.20
Roman Lebedev [Mon, 22 Aug 2016 17:24:14 +0000 (20:24 +0300)]
extensions: fast-float: add destroy() callback, fix 2 leaks
Fixes these 2 not-so-informative leaks, every test showed them:
=================================================================
==27868==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 540276 byte(s) in 1 object(s) allocated from:
0 0x4cf190 in calloc (/home/lebedevri/src/_GIMP/babl/tests/.libs/nop+0x4cf190)
1 0x7f9cdd208cbb (<unknown module>)
2 0x7f9cdd207cca (<unknown module>)
3 0x7f9ce06820d8 in babl_extension_load /home/lebedevri/src/_GIMP/babl/babl/babl-extension.c:221:7
4 0x7f9ce06819d6 in babl_extension_load_dir /home/lebedevri/src/_GIMP/babl/babl/babl-extension.c:263:19
5 0x7f9ce06813fa in babl_extension_load_dir_list /home/lebedevri/src/_GIMP/babl/babl/babl-extension.c:333:17
6 0x7f9ce0678c84 in babl_init /home/lebedevri/src/_GIMP/babl/babl/babl.c:151:7
7 0x50504a in main /home/lebedevri/src/_GIMP/babl/tests/nop.c:26:3
8 0x7f9cdf64e72f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2072f)
Direct leak of 540276 byte(s) in 1 object(s) allocated from:
0 0x4cf190 in calloc (/home/lebedevri/src/_GIMP/babl/tests/.libs/nop+0x4cf190)
1 0x7f9cdd208cbb (<unknown module>)
2 0x7f9cdd207cf6 (<unknown module>)
3 0x7f9ce06820d8 in babl_extension_load /home/lebedevri/src/_GIMP/babl/babl/babl-extension.c:221:7
4 0x7f9ce06819d6 in babl_extension_load_dir /home/lebedevri/src/_GIMP/babl/babl/babl-extension.c:263:19
5 0x7f9ce06813fa in babl_extension_load_dir_list /home/lebedevri/src/_GIMP/babl/babl/babl-extension.c:333:17
6 0x7f9ce0678c84 in babl_init /home/lebedevri/src/_GIMP/babl/babl/babl.c:151:7
#7 0x50504a in main /home/lebedevri/src/_GIMP/babl/tests/nop.c:26:3
8 0x7f9cdf64e72f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2072f)
SUMMARY: AddressSanitizer:
1080552 byte(s) leaked in 2 allocation(s).
Øyvind Kolås [Tue, 30 Aug 2016 22:32:02 +0000 (00:32 +0200)]
babl-extension: fix BABL_PATH debug warning
Øyvind Kolås [Tue, 30 Aug 2016 22:17:24 +0000 (00:17 +0200)]
babl-extension: print warning if no extensions were loaded
Roman Lebedev [Fri, 26 Aug 2016 10:16:51 +0000 (13:16 +0300)]
babl_fish_path_fitness: gcc6: fix -Wmisleading-indentation warnings
Roman Lebedev [Mon, 22 Aug 2016 12:25:31 +0000 (15:25 +0300)]
tools: babl-gen-test-pixels: add explicit return 0
Gcc-4.9 warns:
babl-gen-test-pixels.c: In function ‘main’:
babl-gen-test-pixels.c:170:1: error: control reaches end of non-void function [-Werror=return-type]
Roman Lebedev [Sun, 21 Aug 2016 11:08:37 +0000 (14:08 +0300)]
extensions: gegl-fixups: mark unused functions with attribute
Roman Lebedev [Sun, 21 Aug 2016 08:49:26 +0000 (11:49 +0300)]
Babl-fish-reference: create_name_internal(): ooops, should return int
I broke it in
0fe22e1e37197ef6112645bf5a136580c0927a1e
and totally did not even notice the warning...
Roman Lebedev [Fri, 19 Aug 2016 17:05:17 +0000 (20:05 +0300)]
extensions: gggl: conv_rgb8_rgba8(): use 255UL, not 255
Fixes:
gggl.c:758:62: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'
Roman Lebedev [Fri, 19 Aug 2016 17:04:59 +0000 (20:04 +0300)]
extensions: fast-float: babl_lookup(): use 1UL, not just 1
Fixes:
fast-float.c:81:35: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
and
fast-float.c:91:34: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
Roman Lebedev [Fri, 19 Aug 2016 12:23:02 +0000 (15:23 +0300)]
babl_fish_reference(), create_name(): add conditional fastpath.
Using __thread keyword.
Although, it is probably not universally avaliable, so this
is just conditional fastpath, if it is detected as unsupported
at compile time, the dumb implementation using malloc() is used.
Roman Lebedev [Fri, 19 Aug 2016 18:01:03 +0000 (21:01 +0300)]
babl_fish_reference(), create_name() are racy
create_name_internal() uses global static buffer to create name.
While this is definitely fast, it can't work concurrently.
I used snprintf()+malloc()+snprintf(), so the amount of allocated
memory for the string is optimal.
Alternatively, a mutex would solve the problem, not sure which
solution is faster / better.
Roman Lebedev [Thu, 18 Aug 2016 11:01:51 +0000 (14:01 +0300)]
Add .kateconfig with modelines for Kate
Directly follows GIMP HACKING Hackordnung:
- 2 characters indentation level
- no tabs. TAB should not put TAB characters in the file.
- tab stops at 8 column intervals.
Øyvind Kolås [Wed, 15 Jun 2016 05:20:36 +0000 (07:20 +0200)]
post release version bump to 0.1.19
Alexandre Prokoudine [Sun, 12 Jun 2016 23:07:53 +0000 (02:07 +0300)]
Release 0.1.18
Massimo Valentini [Mon, 30 May 2016 10:45:44 +0000 (12:45 +0200)]
Bug 764628: Gaussian blur: visual glitches
Øyvind Kolås [Fri, 12 Feb 2016 14:27:10 +0000 (15:27 +0100)]
post release bump
Øyvind Kolås [Fri, 12 Feb 2016 14:25:42 +0000 (15:25 +0100)]
release 0.0.16
Øyvind Kolås [Fri, 12 Feb 2016 11:05:33 +0000 (12:05 +0100)]
extensions: re-add table based conversions inherited from gggl
This code was replaces with the exact code paths in gggl and gggl-lies,
adding these new extensions re-enables the ability to use these
slightly less exact conversions - that possibly also could be fixed
to be exact.
Massimo Valentini [Tue, 19 Jan 2016 18:07:19 +0000 (19:07 +0100)]
zero initialize lsb
Øyvind Kolås [Mon, 18 Jan 2016 22:37:09 +0000 (23:37 +0100)]
extensions: remove inaccurate table based conversions
If desired - the table based fast paths should be re-added as separate
extensions.
Massimo Valentini [Sat, 16 Jan 2016 18:33:25 +0000 (19:33 +0100)]
base: half-float reference zero initialize lsb
Øyvind Kolås [Sat, 16 Jan 2016 11:08:06 +0000 (12:08 +0100)]
base: remove commented out single/half code
Øyvind Kolås [Sat, 16 Jan 2016 11:07:21 +0000 (12:07 +0100)]
extensions: add single to/from half float extension
Øyvind Kolås [Sat, 16 Jan 2016 10:16:22 +0000 (11:16 +0100)]
base: fix half reference conversion expecting zeroed target
As discovered in bug #760703 the reference path is currently expecting
zeroed memory, fix by explicitly zeroing last 32bit of mantissa.
Øyvind Kolås [Sun, 10 Jan 2016 23:42:42 +0000 (00:42 +0100)]
sse2: reuse linear premul/unpremul for gamma formats
Debarshi Ray [Sat, 9 Jan 2016 18:41:29 +0000 (19:41 +0100)]
CIE: Add conversion from "RGB float" to "CIE Lab float" and vice versa
Conversions from "RGB float" to "CIE Lab float" are 10 times slower
without this. One use case is passing a "RGB float" buffer to a
saturation operation that works in the "CIE Lab" colour space.
https://bugzilla.gnome.org/show_bug.cgi?id=760310